package com.demo.jzoffer2;

import com.demo.domain.ListNode;
import org.apache.commons.lang.StringUtils;
import org.junit.Test;

import java.util.Stack;
/**
 * @author gy
 * @date 2022/11/7
 */
public class Test1107_03 {
    /**
     * 输入一个链表的头节点，从尾到头反过来返回每个节点的值（用数组返回）。
     *
     *
     *
     * 示例 1：
     *
     * 输入：head = [1,3,2]
     * 输出：[2,3,1]
     *
     *
     * 限制：
     *
     * 0 <= 链表长度 <= 10000
     */

    public int[] reversePrint(ListNode head) {
        ListNode node = null;
        Stack<ListNode> stack = new Stack<>();
        for (node = head;node != null;node = node.next){
            stack.push(node);
        }

        int[] res = new int[stack.size()];
        // 此处需要注意 i < res.length 而不是 i < stack.size()
        // stack的长度大小是一直在发生变化的
        for (int i = 0; i < res.length; i++) {
            res[i] = stack.pop().val;
        }
        return res;
    }

    // 同样是一种遍历链表的方法
//    while(head != null) {
//        stack.addLast(head.val);
//        head = head.next;
//    }


    @Test
    public void test1() {
        ListNode head = new ListNode(1);
        head.next = new ListNode(3);
        head.next.next = new ListNode(2);
        int[] ints = this.reversePrint(head);
        System.out.println(ints);
    }

    public static void main(String[] args) {
//        Object o = null;
//        System.out.println(o.toString());
        String s = "   ";
        System.out.println(StringUtils.isBlank(s));
         System.out.println( StringUtils.isWhitespace(s));
        System.out.println("字符串的值为"+s.trim()+"-");
    }
}
